package com.ruoyi.basicsystem.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.utils.CustomerBigDecimalSerialize;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 付款导出对象
 * 
 * @author nexiaozi
 * @date 2022-09-14
 */
public class ZnAccountHeadFkExportVo
{
    /** 单据编号 */
    @Excel(name = "单据编号",sort = 0)
    private String billNo;
    @Excel(name = "供应商",sort = 1)
    private String organName;

    @Excel(name = "财务人员",sort = 2)
    private String handsPersonName;
    /** 主键 */
    private Long id;

    /** 类型(支出/收入/收款/付款/转账) */
    private String type;

    /** 单位Id(收款/付款单位) */
    private Long organId;


    /** 经手人id */
    private Long handsPersonId;

    /** 变动金额(优惠/收款/付款/实付) */
    @Excel(name = "合计金额",sort = 5)
    @JsonSerialize(using = CustomerBigDecimalSerialize.class)
    private BigDecimal changeAmount;

    /** 优惠金额 */
    @Excel(name = "优惠金额",sort = 4)
    @JsonSerialize(using = CustomerBigDecimalSerialize.class)
    private BigDecimal discountMoney;

    /** 合计金额 */
    @Excel(name = "合计付款",sort = 3)
    @JsonSerialize(using = CustomerBigDecimalSerialize.class)
    private BigDecimal totalPrice;

    /** 账户(收款/付款) */
    private Long accountId;

    @Excel(name = "收入账户",sort = 6)
    private String accountName;
    /** 单据日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "单据日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss",sort = 7)
    private Date billTime;

    /** 附件名称 */
    private String fileName;

    /** 状态，0未审核、1已审核 */
    @Excel(name = "状态",sort = 6,readConverterExp = "0=未审核,1=已审核")
    private String status;

    /** 租户id */
    private Long tenantId;

    /** 删除标记，0未删除，1删除 */
    private String deleteFlag;

    /** 备注 */
    @Excel(name = "备注",sort = 9)
    private String remark;
    /** 操作员 */
    private Long creator;

    @Excel(name = "操作员",sort = 8)
    private String creatorName;


    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setType(String type) 
    {
        this.type = type;
    }

    public String getType() 
    {
        return type;
    }
    public void setOrganId(Long organId) 
    {
        this.organId = organId;
    }

    public Long getOrganId() 
    {
        return organId;
    }
    public void setHandsPersonId(Long handsPersonId) 
    {
        this.handsPersonId = handsPersonId;
    }

    public Long getHandsPersonId() 
    {
        return handsPersonId;
    }
    public void setCreator(Long creator) 
    {
        this.creator = creator;
    }

    public Long getCreator() 
    {
        return creator;
    }
    public void setChangeAmount(BigDecimal changeAmount) 
    {
        this.changeAmount = changeAmount;
    }

    public BigDecimal getChangeAmount() 
    {
        return changeAmount;
    }
    public void setDiscountMoney(BigDecimal discountMoney) 
    {
        this.discountMoney = discountMoney;
    }

    public BigDecimal getDiscountMoney() 
    {
        return discountMoney;
    }
    public void setTotalPrice(BigDecimal totalPrice) 
    {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getTotalPrice() 
    {
        return totalPrice;
    }
    public void setAccountId(Long accountId) 
    {
        this.accountId = accountId;
    }

    public Long getAccountId() 
    {
        return accountId;
    }
    public void setBillNo(String billNo) 
    {
        this.billNo = billNo;
    }

    public String getBillNo() 
    {
        return billNo;
    }
    public void setBillTime(Date billTime) 
    {
        this.billTime = billTime;
    }

    public Date getBillTime() 
    {
        return billTime;
    }
    public void setFileName(String fileName) 
    {
        this.fileName = fileName;
    }

    public String getFileName() 
    {
        return fileName;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setTenantId(Long tenantId) 
    {
        this.tenantId = tenantId;
    }

    public Long getTenantId() 
    {
        return tenantId;
    }
    public void setDeleteFlag(String deleteFlag) 
    {
        this.deleteFlag = deleteFlag;
    }

    public String getDeleteFlag() 
    {
        return deleteFlag;
    }

    public String getOrganName() {
        return organName;
    }

    public void setOrganName(String organName) {
        this.organName = organName;
    }

    public String getCreatorName() {
        return creatorName;
    }

    public void setCreatorName(String creatorName) {
        this.creatorName = creatorName;
    }

    public String getHandsPersonName() {
        return handsPersonName;
    }

    public void setHandsPersonName(String handsPersonName) {
        this.handsPersonName = handsPersonName;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getAccountName() {
        return accountName;
    }

    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("type", getType())
            .append("organId", getOrganId())
            .append("organName", getOrganName())
            .append("handsPersonId", getHandsPersonId())
            .append("handsPersonName", getHandsPersonName())
            .append("creator", getCreator())
            .append("creatorName", getCreatorName())
            .append("changeAmount", getChangeAmount())
            .append("discountMoney", getDiscountMoney())
            .append("totalPrice", getTotalPrice())
            .append("accountId", getAccountId())
            .append("accountName", getAccountName())
            .append("billNo", getBillNo())
            .append("billTime", getBillTime())
            .append("remark", getRemark())
            .append("fileName", getFileName())
            .append("status", getStatus())
            .append("tenantId", getTenantId())
            .append("deleteFlag", getDeleteFlag())
            .toString();
    }
}
